.\"
.\" Copyright (C) Daniel Stenberg
.\" SPDX-License-Identifier: MIT
.\"
.TH ARES_SET_SORTLIST 3 "23 November 2015"
.SH NAME
ares_set_sortlist \- Initialize an ares_channel_t *sortlist configuration
.SH SYNOPSIS
.nf
#include <ares.h>

int ares_set_sortlist(ares_channel_t *\fIchannel\fP, const char *\fIsortstr\fP)
.fi
.SH DESCRIPTION
The \fBares_set_sortlist(3)\fP function initializes an address sortlist configuration
for the channel data identified by
.IR channel ,
so that addresses returned by \fBares_gethostbyname(3)\fP are sorted according to the
sortlist.  The provided
.IR sortstr
string that holds a space separated list of IP-address-netmask pairs.  The
netmask is optional but follows the address after a slash if present.  For example,
"130.155.160.0/255.255.240.0 130.155.0.0" will sort IPs in ascending
order of appearance in the sortlist subnets, with those IPs that do
not match any subnets coming last.  There is no particular order
amongst IPs that tie in this sorting scheme.

This function replaces any potentially previously configured address
sortlist with the ones given in the configuration string. It also
overrides the sortlist set in
.B resolv.conf(5).
Note that this function does not affect the order of results from
\fBares_getaddrinfo(3)\fP.

.SH RETURN VALUES
.B ares_set_sortlist(3)
may return any of the following values:
.TP 15
.B ARES_SUCCESS
The sortlist configuration was successfully initialized.
.TP 15
.B ARES_ENOMEM
The process's available memory was exhausted.
.TP 15
.B ARES_ENODATA
The channel data identified by
.IR channel
was invalid.
.TP 15
.B ARES_ENOTINITIALIZED
c-ares library initialization not yet performed.
.SH SEE ALSO
.BR ares_init_options (3),
.BR ares_dup (3)
.SH AVAILABILITY
ares_set_sortlist(3) was added in c-ares 1.11.0
